package br.com.foxinline.manager.pesquisar;

import br.com.foxinline.enums.TipoDocumento;
import br.com.foxinline.manager.generico.ManagerPesquisarGenerico;
import br.com.foxinline.modelo.Requerimento;
import br.com.foxinline.servico.PrefeituraServico;
import br.com.foxinline.servico.RequerimentoServico;
import br.com.foxinline.util.Caracter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;

/**
 *
 * @author elyjunior
 */
@ManagedBean
@ViewScoped
public class ManagerPesquisarRequerimento extends ManagerPesquisarGenerico<Requerimento> {
    
    @EJB
    RequerimentoServico requerimentoServico;
    
    Requerimento requerimento;
    
    @EJB
    PrefeituraServico prefeituraServico;
    
    @PostConstruct
    @Override
    public void init() {
        setServico(requerimentoServico);
        requerimento = new Requerimento();
        requerimento.setTipoDocumentoInteressado(TipoDocumento.CPF);
        requerimento.setTipoDocumentoProprietario(TipoDocumento.CPF);
    }
     
    public List<SelectItem> tipoDocumentoList() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        for (TipoDocumento tipo : TipoDocumento.values()) {
            items.add(new SelectItem(tipo.getTipo(), tipo.getNome()));
        }
        return items;
    }
    
    @Override
    public void pesquisar() {
         
        requerimento.setCpfInteressado(Caracter.removecaracter(requerimento.getCpfInteressado()));
        requerimento.setCnpjInteressado(Caracter.removecaracter(requerimento.getCnpjInteressado()));
        requerimento.setCpfProprietario(Caracter.removecaracter(requerimento.getCpfProprietario()));
        requerimento.setCnpjProprietario(Caracter.removecaracter(requerimento.getCnpjProprietario()));
        
        entidadePesquisar = requerimento;
        
        getSearchResults().setFirst(0);
        onLoadModel();
    }
    
    public void imprimirRequerimento(Requerimento paramRequerimento) {
        HashMap parametros = new HashMap();

        parametros.putAll(prefeituraServico.parametroPrefeitura());

        requerimentoServico.imprimirRequerimento(paramRequerimento, parametros);
    }
    
    public Requerimento getRequerimento() {
        return requerimento;
    }
    
    public void setRequerimento(Requerimento requerimento) {
        this.requerimento = requerimento;
    }
    
    @Override
    public void limpar() {
        requerimento = new Requerimento();
    }
    
    @Override
    public void remover() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

   
}
